#!/bin/bash

# 检测是否为 root 用户
if [[ $EUID -ne 0 ]]; then
    echo "错误：该脚本必须以 root 用户权限运行，请使用 sudo 或切换到 root 用户后重试。"
    exit 1
fi

# 检测操作系统类型和版本
if [[ -f /etc/os-release ]]; then
    source /etc/os-release
    OS_ID=$ID
    OS_VERSION_ID=$VERSION_ID
    OS_PRETTY_NAME=$PRETTY_NAME
else
    echo "无法检测操作系统类型，请确保您正在使用 CentOS、Ubuntu 或 Debian。"
    exit 1
fi

# 显示检测到的系统版本
echo "检测到系统：$OS_PRETTY_NAME (ID: $OS_ID, 版本: $OS_VERSION_ID)"

# 提示用户是否继续安装
read -p "是否继续安装 Docker？(y/n): " choice
case "$choice" in
    y|Y)
        echo "用户选择继续安装，开始执行安装流程..."
        ;;
    n|N)
        echo "用户取消安装，脚本退出。"
        exit 0
        ;;
    *)
        echo "无效输入，脚本退出。"
        exit 1
        ;;
esac

# 定义临时脚本文件名
TEMP_SCRIPT="dk_install.sh"

# 根据操作系统类型和版本执行对应脚本
case $OS_ID in
    centos)
        case $OS_VERSION_ID in
            7*)
                echo "检测到 CentOS 7.x，正在下载并执行对应的安装脚本..."
                curl -fsSL https://gitee.com/linpop/docker-install/raw/master/centos7_docker.sh -o $TEMP_SCRIPT
                ;;
            8*)
                echo "检测到 CentOS 8.x，正在下载并执行对应的安装脚本..."
                curl -fsSL https://gitee.com/linpop/docker-install/raw/master/centos8_docker.sh -o $TEMP_SCRIPT
                ;;
            *)
                echo "不支持的 CentOS 版本：$OS_VERSION_ID"
                exit 1
                ;;
        esac
        ;;
    ubuntu|debian)
        echo "检测到 $OS_ID，正在下载并执行对应的安装脚本..."
        curl -fsSL https://gitee.com/linpop/docker-install/raw/master/debian_docker.sh -o $TEMP_SCRIPT
        ;;
    *)
        echo "该脚本仅支持 CentOS、Ubuntu 和 Debian 系统。"
        exit 1
        ;;
esac

# 检查脚本是否下载成功
if [[ ! -f $TEMP_SCRIPT ]]; then
    echo "脚本下载失败，请检查网络连接或 URL 是否正确。"
    exit 1
fi

# 赋予脚本执行权限
chmod +x $TEMP_SCRIPT
echo "已为脚本 $TEMP_SCRIPT 赋予执行权限。"

# 执行下载的脚本
echo "正在执行脚本 $TEMP_SCRIPT..."
./$TEMP_SCRIPT

# 检查脚本执行是否成功
if [[ $? -eq 0 ]]; then
    echo "Docker 安装脚本执行完成！"
else
    echo "Docker 安装脚本执行失败，请检查错误信息。"
    # 删除临时脚本文件
    rm -f $TEMP_SCRIPT
    exit 1
fi

# 删除临时脚本文件
rm -f $TEMP_SCRIPT